const express = require('express')
const Router = express.Router()
const model = require('./model')
const User = model.getModel('user')
const Chat = model.getModel('chat')
const utils = require('utility')

Router.get('/list', function (req, res) {

    const {type} = req.query

    //User.remove({}, function (err, doc) {})

    User.find({
        type
    }, function (err, doc) {
        return res.json({code: 0, data: doc})
    })
})

Router.get('/getmsgList', function (req, res) {
    const user = req.cookies.user
    //{'$or':[{from:user,tp:user}]}
    Chat.find({}, function (err, doc) {
        if (!err) {
            return res.json({code: 0, msgs: doc})
        }
    })
})

Router.get('/remove', function (req, res) {

    User
        .remove({}, function (err, doc) {
            return res.json(doc)
        })

})

Router.post('/update', function (req, res) {

    const userid = req.cookies.userid

    if (!userid) {
        return res.json({code: 1})
    }
    const body = req.body
    User.findByIdAndUpdate(userid, body, function (err, doc) {
        const data = Object.assign({}, {
            user: doc.user,
            type: doc.type
        }, body)
        return res.json({code: 0, data: data})
    })

})

Router.post('/login', function (req, res) {
    console.log('用户登录')
    const {user, pwd} = req.body
    User.findOne({
        user,
        pwd: (md5Pwd(pwd))
    }, {
        'pwd': 0
    }, function (err, doc) {
        if (!doc) {
            return res.json({code: 1, msg: '用户名或密码错误'})
        }
        res.cookie('userid', doc._id)
        return res.json({code: 0, data: doc})
    })
})

Router.post('/register', function (req, res) {

    const {user, pwd, type} = req.body
    User.findOne({
        user
    }, function (err, doc) {
        if (doc) {
            return res.json({code: 1, msg: '用户名重复'})
        }
        const userModel = new User({user, type, pwd: md5Pwd(pwd)})
        userModel.save(function (err, doc) {
            if (err) {
                return res.json({code: 1, msg: '后端出错了'})
            }
            const {user, type, _id} = doc
            res.cookie('userid', _id)
            return res.json({
                code: 0,
                data: {
                    user,
                    type,
                    _id
                }
            })
        })

        // User.create({     user,     type,     pwd: md5Pwd(pwd) }, function (err, doc)
        // {     if (err) {         return res.json({code: 1, msg: '后端出错了'})     }
        // return res.json({code: 0}) })
    })

})

function md5Pwd(pwd) {
    const salt = 'wx85745997'
    return utils.md5(utils.md5(pwd + salt))
}

Router
    .get('/info', function (req, res) {
        return res.json({code: 0})
    })

module.exports = Router